<?php

namespace slinks\extensions\action\core;

/**
 * 
 * @author Navid Mitchell
 *
 */
interface IActionInvocation {

    /**
     * @return IActionContext for use with this proxy
     */
    public function getActionContext();

    /**
     * @return IActionProxy the action proxy for the action being invoked. 
     */
    public function getActionProxy();

    /**
     * Invoke the next interceptor in the chain. 
     * @return string return code with the result of this invocation. 
     */
    public function invoke();

    /**
     * The return value for the Invocation.
     * @return mixed
     */
    public function getReturnValue();

    /**
     * Set the return value.
     * 
     * @param mixed $returnValue
     */
    public function setReturnValue($returnValue);
}